/**
//从若干副扑克牌中随机抽 5 张牌，判断是不是一个顺子，即这5张牌是不是连续的。2～10为数字本身，A为1，J为11，Q为12，K为13，而大、小王为 0 ，
//可以看成任意数字。A 不能视为 14。 
//
// 
//
// 示例 1: 
//
// 
//输入: [1,2,3,4,5]
//输出: True 
//
// 
//
// 示例 2: 
//
// 
//输入: [0,0,1,2,5]
//输出: True 
//
// 
//
// 限制： 
//
// 数组长度为 5 
//
// 数组的数取值为 [0, 13] . 
// Related Topics 数组 排序 👍 238 👎 0

*/

package com.xixi.easy;
public class ID_Offer_61_BuKePaiZhongDeShunZiLcof {
public static void main(String[] args) {
Solution solution = new ID_Offer_61_BuKePaiZhongDeShunZiLcof().new Solution();
    System.out.println(solution.isStraight(new int[]{11,0,9,0,0}));
}


//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean isStraight(int[] nums) {
        //排序
        for(int i = 1; i < 5; i++){

            int j = i;
            while(j > 0 && nums[j] < nums[j - 1]){
                swap(nums, j, j-1);
                j--;
            }
        }

        int i = 0;
        while(i < 4 && nums[i] == 0){
            //找到不等于0的那一位
            i++;
        }

        if(i == 4){
            return true;
        }else{
            int edge = i+1;
            while(i < 4){
                int diff = nums[i+1] - nums[i];
                if(diff > edge || diff == 0){
                    return false;
                }
                i++;
            }
        }

        return true;
    }


    public void swap(int[] nums, int a, int b){
        int tmp = nums[a];
        nums[a] = nums[b];
        nums[b] = tmp;


    }
}
//leetcode submit region end(Prohibit modification and deletion)




}